package TDAColaCP;

import static org.junit.Assert.assertTrue;
import TDAMapeo.Entry;


public class testHeap {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		HeapPQueue<Integer, String> s=new HeapPQueue<Integer, String>();
		HeapPQueue<Integer, Integer> heap= new HeapPQueue<Integer, Integer>();
		String n1, n2, n3, n4, n5, n6;
		Integer i1, i2, i3, i4, i5, i6;
		n1 = "Uno";
		n2 = "Dos";
		n3 = "Tres";
		n4 = "Cuatro";
		n5 = "Cinco";
		n6 = "Seis";
		i1 = 1;
		i2 = 2;
		i3 = 3;
		i4 = 4;
		i5 = 5;
		i6 = 6;
		Entry<Integer, String> entrada;
		try{
			for(int i=1; i<=9; i++)
				heap.insert(i, i);
//			for(int i=1; i<=5; i++)
//				heap.insert(1, i);
//			for(int i=6; i<=9; i++)
//				heap.insert(5, i);
//			heap.insert(1, 1);
//			heap.insert(5, 5);
//			heap.insert(4, 4);
//			heap.insert(5, 5);
			heap.removeMin();
			heap.removeMin();
			
			{
				s.insert(i4, n4);
				s.insert(i1, n1);
				s.insert(i5, n5);
				s.insert(i3, n3);
				s.insert(i6, n6);
				s.insert(i2, n2);
	
				entrada = s.removeMin();
				assertTrue("removeMin() no funciona correctamente", (entrada
						.getKey().equals(i1) && entrada.getValue().equals(n1)));
				entrada = s.removeMin();
				assertTrue("removeMin() no funciona correctamente", (entrada
						.getKey().equals(i2) && entrada.getValue().equals(n2)));
				entrada = s.removeMin();
				assertTrue("removeMin() no funciona correctamente", (entrada
						.getKey().equals(i3) && entrada.getValue().equals(n3)));
				entrada = s.removeMin();
				assertTrue("removeMin() no funciona correctamente", (entrada
						.getKey().equals(i4) && entrada.getValue().equals(n4)));
				entrada = s.removeMin();
				assertTrue("removeMin() no funciona correctamente", (entrada
						.getKey().equals(i5) && entrada.getValue().equals(n5)));
				entrada = s.removeMin();
				assertTrue("removeMin() no funciona correctamente", (entrada
						.getKey().equals(i6) && entrada.getValue().equals(n6)));
			}
			
//			for (int i = 40; i <= 50; i++)
//				s.insert(i, n1);
//			for (int i = 60; i >= 51; i--)
//				s.insert(i, n2);
//			for (int i = 61; i <= 75; i++)
//				s.insert(i, n3);
//			for (int i = 30; i <= 39; i++)
//				s.insert(i, n4);
//			for (int i = 1000; i > 100; i--)
//				s.insert(i, n5);
//			for (int i = 29; i > 0; i--)
//				s.insert(i, n5);
//			for (int i = 90; i <= 100; i++)
//				s.insert(i, n6);
//			for (int i = 89; i > 75; i--)
//				s.insert(i, n5);
//			
//			for (int i = 1; i <= 105; i++) {
//				entrada = s.removeMin();
//				if(!entrada.getKey().equals(i)) 
//					System.out.print("ERROR ");
//				System.out.println(""+entrada.getKey()+" :: "+i);
//				
//			}
//			for (int i = 106; i <= 1000; i++) {
//				entrada = s.removeMin();
//				if(!entrada.getKey().equals(i)) 
//					System.out.print("ERROR ");
//				System.out.println(""+entrada.getKey()+" :: "+i);
//				
//			}
			System.out.println("---ERROR ");
		}catch(Exception ex){
			ex.printStackTrace();
		}
		
		System.out.print("FIN");

	}

}
